// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Tracing implementation internals
#include "verilated_vcd_c.h"
#include "VkeyFilter__Syms.h"


VL_ATTR_COLD void VkeyFilter___024root__trace_init_sub__TOP__0(VkeyFilter___024root* vlSelf, VerilatedVcd* tracep) {
    if (false && vlSelf) {}  // Prevent unused
    VkeyFilter__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
    VL_DEBUG_IF(VL_DBG_MSGF("+    VkeyFilter___024root__trace_init_sub__TOP__0\n"); );
    // Init
    const int c = vlSymsp->__Vm_baseCode;
    // Body
    tracep->declBit(c+7,"clk", false,-1);
    tracep->declBit(c+8,"rstn", false,-1);
    tracep->declBit(c+9,"ikey", false,-1);
    tracep->declBit(c+10,"okey", false,-1);
    tracep->pushNamePrefix("keyFilter ");
    tracep->declBus(c+11,"SYS_CLK", false,-1, 31,0);
    tracep->declBit(c+7,"clk", false,-1);
    tracep->declBit(c+8,"rstn", false,-1);
    tracep->declBit(c+9,"ikey", false,-1);
    tracep->declBit(c+10,"okey", false,-1);
    tracep->declBus(c+12,"CNT_MAX", false,-1, 31,0);
    tracep->declBus(c+1,"cnt", false,-1, 25,0);
    tracep->declBit(c+2,"key_in_r", false,-1);
    tracep->declBit(c+4,"key_pos", false,-1);
    tracep->declBit(c+5,"key_neg", false,-1);
    tracep->declBus(c+6,"nstate", false,-1, 3,0);
    tracep->declBus(c+3,"cstate", false,-1, 3,0);
    tracep->declBus(c+13,"IDLE", false,-1, 3,0);
    tracep->declBus(c+14,"SAMPLE", false,-1, 3,0);
    tracep->declBus(c+15,"PRESS", false,-1, 3,0);
    tracep->declBus(c+16,"LOOSE", false,-1, 3,0);
    tracep->popNamePrefix(1);
}

VL_ATTR_COLD void VkeyFilter___024root__trace_init_top(VkeyFilter___024root* vlSelf, VerilatedVcd* tracep) {
    if (false && vlSelf) {}  // Prevent unused
    VkeyFilter__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
    VL_DEBUG_IF(VL_DBG_MSGF("+    VkeyFilter___024root__trace_init_top\n"); );
    // Body
    VkeyFilter___024root__trace_init_sub__TOP__0(vlSelf, tracep);
}

VL_ATTR_COLD void VkeyFilter___024root__trace_full_top_0(void* voidSelf, VerilatedVcd* tracep);
void VkeyFilter___024root__trace_chg_top_0(void* voidSelf, VerilatedVcd* tracep);
void VkeyFilter___024root__trace_cleanup(void* voidSelf, VerilatedVcd* /*unused*/);

VL_ATTR_COLD void VkeyFilter___024root__trace_register(VkeyFilter___024root* vlSelf, VerilatedVcd* tracep) {
    if (false && vlSelf) {}  // Prevent unused
    VkeyFilter__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
    VL_DEBUG_IF(VL_DBG_MSGF("+    VkeyFilter___024root__trace_register\n"); );
    // Body
    tracep->addFullCb(&VkeyFilter___024root__trace_full_top_0, vlSelf);
    tracep->addChgCb(&VkeyFilter___024root__trace_chg_top_0, vlSelf);
    tracep->addCleanupCb(&VkeyFilter___024root__trace_cleanup, vlSelf);
}

VL_ATTR_COLD void VkeyFilter___024root__trace_full_sub_0(VkeyFilter___024root* vlSelf, VerilatedVcd* tracep);

VL_ATTR_COLD void VkeyFilter___024root__trace_full_top_0(void* voidSelf, VerilatedVcd* tracep) {
    VL_DEBUG_IF(VL_DBG_MSGF("+    VkeyFilter___024root__trace_full_top_0\n"); );
    // Init
    VkeyFilter___024root* const __restrict vlSelf VL_ATTR_UNUSED = static_cast<VkeyFilter___024root*>(voidSelf);
    VkeyFilter__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
    // Body
    VkeyFilter___024root__trace_full_sub_0((&vlSymsp->TOP), tracep);
}

VL_ATTR_COLD void VkeyFilter___024root__trace_full_sub_0(VkeyFilter___024root* vlSelf, VerilatedVcd* tracep) {
    if (false && vlSelf) {}  // Prevent unused
    VkeyFilter__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
    VL_DEBUG_IF(VL_DBG_MSGF("+    VkeyFilter___024root__trace_full_sub_0\n"); );
    // Init
    vluint32_t* const oldp VL_ATTR_UNUSED = tracep->oldp(vlSymsp->__Vm_baseCode);
    // Body
    tracep->fullIData(oldp+1,(vlSelf->keyFilter__DOT__cnt),26);
    tracep->fullBit(oldp+2,(vlSelf->keyFilter__DOT__key_in_r));
    tracep->fullCData(oldp+3,(vlSelf->keyFilter__DOT__cstate),4);
    tracep->fullBit(oldp+4,(vlSelf->keyFilter__DOT__key_pos));
    tracep->fullBit(oldp+5,(vlSelf->keyFilter__DOT__key_neg));
    tracep->fullCData(oldp+6,(vlSelf->keyFilter__DOT__nstate),4);
    tracep->fullBit(oldp+7,(vlSelf->clk));
    tracep->fullBit(oldp+8,(vlSelf->rstn));
    tracep->fullBit(oldp+9,(vlSelf->ikey));
    tracep->fullBit(oldp+10,(vlSelf->okey));
    tracep->fullIData(oldp+11,(0x2faf080U),32);
    tracep->fullIData(oldp+12,(0x32U),32);
    tracep->fullCData(oldp+13,(1U),4);
    tracep->fullCData(oldp+14,(2U),4);
    tracep->fullCData(oldp+15,(4U),4);
    tracep->fullCData(oldp+16,(8U),4);
}
